home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 95 / Amiga News 95.iso / dpat / dpat96 / klondike_adptools_v1.1 / datas / english.lha / 1-ScaleCards.adpro < prev    next >
Text File  |  1995-04-11  |  6KB  |  279 lines

  1. /*
  2. ** ScaleCards.adpro :
  3. **  This ARexx script for ADPro v2.5 or higher scales selected pictures to
  4. **  86x128 pixels and save then to IFF 24 bits.
  5. **
  6. ** $VER: ScaleCards/English v1.1 (06.04.95) © Copyright Lejardinier Olivier - All rights reserved
  7. **
  8. */
  9.  
  10.  ADDRESS "ADPro"
  11.  OPTIONS RESULTS
  12.  
  13.  NL = '0A'X
  14.  FALSE = 0
  15.  TRUE = 1
  16.  
  17. /*
  18. ** Save the current environment.
  19. */
  20.  
  21.  TempDefaults = "T:TempADProDefaults"
  22.  SAVE_DEFAULTS TempDefaults
  23.  
  24. /*
  25. ** Initializations.
  26. */
  27.  
  28.  CLOSE_RENDER_SCREEN
  29.  CLEAR_RENDERED
  30.  CLEAR_RAW
  31.  PSTATUS "UNLOCKED"
  32.  ADPRO_TO_FRONT
  33.  
  34.  MemoryError = "Perhaps not enought memory."
  35.  FileMemError = "Perhaps file corrupted or not enought memory."
  36.  DiskSpaceError = "Perhaps not enought disk space."
  37.  
  38. /*
  39. ** Get some cards files.
  40. */
  41.  
  42.  Continue = FALSE
  43.  DO UNTIL ( Continue = TRUE )
  44.   GETFILES '"Select some cards files :"'
  45.   IF ( RC ~= 0 ) THEN
  46.    DO
  47.     OKAYN '"Error :"' '"You MUST select some cards files !"' '"Select|Abort"'
  48.     IF ( RC = 0 ) THEN
  49.      CALL ForceExit
  50.    END
  51.   ELSE
  52.    DO
  53.     CardsFiles = ADPRO_RESULT
  54.     NbCards = WORDS( CardsFiles )
  55.     Continue = TRUE
  56.    END
  57.  END
  58.  
  59.  SourceDir = WORD( CardsFiles , 1 )
  60.  FirstChar = LEFT( SourceDir , 1 )
  61.  IF ( (FirstChar = '"') | (FirstChar = '''') ) THEN
  62.   SourceDir = STRIP( SourceDir , "B" , FirstChar )
  63.  
  64.  FNameSepPos = LASTPOS( '/' , SourceDir )
  65.  IF (FNameSepPos = 0) THEN
  66.   FNameSepPos = LASTPOS( ':' , SourceDir )
  67.  
  68.  IF (FNameSepPos ~= 0) THEN
  69.   DO
  70.    Basename = RIGHT( SourceDir , LENGTH( SourceDir ) - FNameSepPos )
  71.    SourceDir = LEFT( SourceDir , FNameSepPos )
  72.    IF ( LASTPOS( '.'  , Basename ) ~= 0 ) THEN
  73.     Basename = DELSTR( Basename , LASTPOS( '.'  , Basename ) )
  74.   END
  75.  ELSE
  76.   DO
  77.    SourceDir = ""
  78.    Basename = "Cards"
  79.   END
  80.   
  81. /*
  82. ** Get destination directory.
  83. */
  84.  
  85.  Continue = FALSE
  86.  DO UNTIL ( Continue = TRUE )
  87.   GETDIR '"Select output directory :"' '"'SourceDir'"'
  88.   IF ( RC ~= 0 ) THEN
  89.    DO
  90.     Text = "Use :" || NL || SourceDir || NL || "as output directory ?"
  91.     OKAYN '"Confirm :"' '"'Text'"' '"Use|Select|Abort"'
  92.     IF ( RC = 0 ) THEN
  93.      CALL ForceExit
  94.     ELSE
  95.      IF ( RC = 1 ) THEN
  96.       DO
  97.        DestDir = SourceDir
  98.        Continue = TRUE
  99.       END
  100.    END
  101.   ELSE
  102.    DO
  103.     DestDir = ADPRO_RESULT
  104.     Continue = TRUE
  105.    END
  106.  END
  107.  
  108.  FirstChar = LEFT( DestDir , 1 )
  109.  IF ( ( FirstChar = '"' ) | ( FirstChar = '''' ) ) THEN
  110.   DestDir = STRIP( DestDir , "B" , LEFT( DestDir, 1 ) )
  111.  
  112.  LastChar = RIGHT( DestDir , 1 )
  113.  IF ( ( LastChar ~= "/" ) & ( LastChar ~= ":" ) ) THEN
  114.    DestDir = DestDir || "/"
  115.   
  116. /*
  117. ** Select cards base name.
  118. */
  119.  
  120.  Continue = FALSE
  121.  DO UNTIL ( Continue = TRUE )
  122.   GETSTRING '"Enter cards base name :"' '"'Basename'"'
  123.   IF ( RC ~= 0 ) THEN
  124.    DO
  125.     OKAYN '"Confirm :"' '"Use 'Card' as cards base name ?"' '"Use|Select|Abort"'
  126.     IF ( RC = 0 ) THEN
  127.      CALL ForceExit
  128.     ELSE
  129.      IF ( RC = 1 ) THEN
  130.       DO
  131.        Basename = "Card"
  132.        Continue = TRUE
  133.       END
  134.    END
  135.   ELSE
  136.    DO
  137.     Basename = ADPRO_RESULT
  138.     Continue = TRUE
  139.    END
  140.  END
  141.  
  142. /*
  143. ** Get counter starting.
  144. */
  145.  
  146.  Counter = 1
  147.  Continue = FALSE
  148.  DO UNTIL ( Continue = TRUE )
  149.   GETNUMBER '"Start counter at ?"' Counter 1 999-NbCards
  150.   IF ( RC ~= 0 ) THEN
  151.    DO
  152.     Text = "Start counter at" Counter ", or ABORT ?"
  153.     OKAYN '"Confirm :"' '"'Text'"' '"Use|Abort"'
  154.     IF ( RC = 0 ) THEN
  155.      CALL ForceExit
  156.     ELSE
  157.      Continue = TRUE
  158.    END
  159.   ELSE
  160.    DO
  161.     Counter = ADPRO_RESULT
  162.     Continue = TRUE
  163.    END
  164.  END
  165.  
  166. /*
  167. ** Load, scale & save cards file to IFF24.
  168. */
  169.  
  170.  Index = 1
  171.  LOAD_TYPE '"REPLACE"'
  172.  
  173.  DO WHILE ( Index <= NbCards )
  174.  
  175.   Cardname = WORD( CardsFiles, Index )
  176.  
  177.   Continue = FALSE
  178.   DO UNTIL ( Continue = TRUE )
  179.  
  180.    LOADER '"UNIVERSAL"' Cardname
  181.    IF ( RC ~= 0 ) THEN
  182.     DO
  183.      Text = "Unable to load :" || NL || STRIP( Cardname , B , '"' ) || NL || MemoryError
  184.      OKAYN '"Error :"' '"'Text'"' '"Retry|Skip|Abort"'
  185.      IF ( RC = 0 ) THEN
  186.       CALL ForceExit
  187.      ELSE
  188.       IF ( RC = 2 ) THEN
  189.        DO
  190.         Index = Index + 1
  191.         IF ( Index > NbCards ) THEN
  192.          DO
  193.           OKAY1 "No more card file to load..."
  194.           CALL ForceExit
  195.          END
  196.         ELSE
  197.          Cardname = WORD( CardsFiles , Index )
  198.        END
  199.      IF ( RC = 0 ) THEN CALL ForceExit
  200.     END
  201.    ELSE
  202.     Continue = TRUE
  203.   END
  204.  
  205.   Continue = FALSE 
  206.   DO UNTIL ( Continue = TRUE )
  207.    ABS_SCALE 86 128
  208.    IF ( RC ~= 0 ) THEN
  209.     DO
  210.       Text = "Unable to scale :" || NL || STRIP( Cardname , B , '"' ) || NL || MemoryError
  211.       OKAYN '"Error "' '"'Text'"' '"Retry|Skip|Abort"'
  212.       IF ( RC = 0 ) THEN
  213.        CALL ForceExit
  214.       ELSE
  215.        IF ( RC = 2 ) THEN
  216.         DO
  217.          Continue = TRUE
  218.          Index = Index + 1
  219.         END
  220.      END
  221.     ELSE
  222.      Continue = TRUE
  223.   END
  224.   
  225.   IF ( Counter < 10 ) THEN
  226.    Savename = DestDir || Basename || ".00" || Counter
  227.   ELSE
  228.    IF ( Counter < 100 ) THEN
  229.     Savename = DestDir || Basename || ".0" || Counter
  230.    ELSE
  231.     Savename = DestDir || Basename || "." || Counter
  232.   
  233.   Continue = FALSE
  234.   DO UNTIL ( Continue = TRUE )
  235.    SAVER '"IFF"' Savename "RAW"
  236.    IF ( RC ~= 0 ) THEN
  237.     DO
  238.      Text = "Unable to save scaled card :" || NL || STRIP( Cardname , B , '"' ) || NL || DiskSpaceError
  239.      OKAYN '"Error :"' '"'Text'"' '"Retry|Skip|Abort"'
  240.      IF ( RC = 0 ) THEN
  241.       CALL ForceExit
  242.      ELSE
  243.       IF ( RC = 2 ) THEN
  244.      DO
  245.       Continue = TRUE
  246.       Index = Index + 1
  247.      END
  248.     END
  249.    ELSE
  250.     DO
  251.      Continue =TRUE
  252.      Index = Index + 1
  253.      Counter = Counter + 1
  254.     END
  255.   END
  256.  END
  257.  
  258. /*
  259. ** Quit.
  260. */
  261.  
  262. ForceExit:
  263.  
  264.  CLOSE_RENDER_SCREEN
  265.  CLEAR_RENDERED
  266.  CLEAR_RAW
  267.  
  268.  IF ( EXISTS( TempDefaults ) ) THEN
  269.   DO
  270.    LOAD_DEFAULTS TempDefaults
  271.    IF ( RC ~= 0 ) THEN
  272.     OKAY1 "Error restoring settings."
  273.    ADDRESS COMMAND "C:Delete >NIL: FILE" TempDefaults "QUIET"
  274.   END
  275.  
  276.  EXIT 0
  277.  
  278. RETURN
  279.